﻿using System.Runtime.CompilerServices;

namespace 线程的等待和唤醒
{
    internal class Program
    {
        static bool t1Turn = true; // 用于控制两个线程的执行顺序  

        static void Main()
        {
            // 两个线程交替运行
            Thread t1 = new Thread(ThreadFunction1);
            Thread t2 = new Thread(ThreadFunction2);
            t1.Start();
            t2.Start();
        }

        static void ThreadFunction1()
        {
            while (true)
            {
                if (t1Turn)
                {
                    Console.WriteLine("线程1");
                    t1Turn = false; // 切换到线程2  
                    Thread.Sleep(1000); // 线程1休眠1秒  
                }
            }
        }

        static void ThreadFunction2()
        {
            while (true)
            {
                if (!t1Turn)
                {
                    Console.WriteLine("线程2");
                    t1Turn = true; // 切换回线程1  
                    Thread.Sleep(1000); // 线程2休眠1秒  
                }
            }
        }
    }
}
